A bar code symbol is a pattern of parallel bars and spaces of various widths that represent data elements or characters. The bars represent strings of binary ones and the spaces represent strings of binary zeros. A conventional “one-dimensional” bar code symbol contains a series of bars and spaces that vary only in a single dimension. One-dimensional bar code symbols have relatively small information storage capacities. “Two-dimensional” bar codes have been developed to meet the increasing need for machine-readable symbols that contain more information than one-dimensional bar code symbols. The information storage capacity of two-dimensional bar code symbols is increased relative to one-dimensional bar codes by varying the bar code patterns in two dimensions. Common two-dimensional bar code standards include PDF417, Code 1, and Maxicode. One-dimensional and two-dimensional bar code symbols typically are read by optical scanning techniques (e.g., by mechanically scanned laser beams or by self-scanning charge-coupled devices (CCD's)) that convert a printed bar code symbol into electrical signals. The electrical signals are digitized and decoded to recover the data encoded in the printed bar code symbol.
Bar codes may be used in a variety of applications, including low information content applications (e.g., automatic price tagging and inventory management), and relatively high information content applications (e.g., encoding mail addresses and postage for automated mail reading and mail distribution systems, and encoding compressed content of a printed page).
In many applications, it is desirable to authenticate the source of information or the information itself, or both. For example, in order to create certain written instruments (e.g., a bank draft or check authorizing the withdrawal of money from a bank account, or a postage indicia printed on an envelope) it is necessary to authenticate the source of the information creating the instrument (e.g., the identity of person authorizing the bank withdrawal or printing the postage indicia). In addition, in certain applications there is a need to verify whether a communication received by a recipient is the actual communication that was sent by the sender (i.e., that a communication has not been intercepted, modified, or replaced).